home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / hf^k-2.dms / in.adf / MUIClass.Lha / Include / Classes / TWiMUI / Cycle.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-06  |  2.2 KB  |  95 lines

  1. //
  2. //  $VER: Cycle.h       1.2 (02 Sep 1996)
  3. //
  4. //    c 1996 Thomas Wilhelmi
  5. //
  6. //
  7. // Address : Taunusstrasse 14
  8. //           61138 Niederdorfelden
  9. //           Germany
  10. //
  11. //  E-Mail : willi@twi.rhein-main.de
  12. //
  13. //   Phone : +49 (0)6101 531060
  14. //   Fax   : +49 (0)6101 531061
  15. //
  16. //
  17. //  $HISTORY:
  18. //
  19. //  16 Jun 1996 :   1.0 : first public Release
  20. //
  21. //  02 Sep 1996 :   1.2 : Neu:
  22. //                        - ClassNum() für Exception-Handling.
  23. //                        Änderungen
  24. //                        - Parameter des Copy-Konstruktor als 'const'-Parameter definiert
  25. //
  26.  
  27. #ifndef CPP_TWIMUI_CYCLE_H
  28. #define CPP_TWIMUI_CYCLE_H
  29.  
  30. #ifndef CPP_TWIMUI_LABEL_H
  31. #include <classes/twimui/label.h>
  32. #endif
  33.  
  34. #ifndef CPP_TWIMUI_GROUP_H
  35. #include <classes/twimui/group.h>
  36. #endif
  37.  
  38. class MUICycle : public MUIGroup
  39.     {
  40.     protected:
  41.         virtual const ULONG ClassNum() const;
  42.     public:
  43.         MUICycle(const struct TagItem *t)
  44.             :   MUIGroup(MUIC_Cycle)
  45.             {
  46.             init(t);
  47.             };
  48.         MUICycle(const Tag, ...);
  49.         MUICycle(const STRPTR *entries)
  50.             :   MUIGroup(MUIC_Cycle)
  51.             {
  52.             init(MUIA_Cycle_Entries, entries,
  53.                 TAG_DONE);
  54.             };
  55.         MUICycle(const STRPTR *entries, const UBYTE cc)
  56.             :   MUIGroup(MUIC_Cycle)
  57.             {
  58.             init(MUIA_Cycle_Entries, entries,
  59.                 MUIA_ControlChar, cc,
  60.                 TAG_DONE);
  61.             };
  62.         MUICycle() : MUIGroup(MUIC_Cycle) { };
  63.         MUICycle(const MUICycle &);
  64.         virtual ~MUICycle();
  65.         MUICycle &operator= (const MUICycle &);
  66.         void Active(const LONG p) { set(MUIA_Cycle_Active,(ULONG)p); };
  67.         void ActiveNext() { set(MUIA_Cycle_Active,MUIV_Cycle_Active_Next); };
  68.         void ActivePrev() { set(MUIA_Cycle_Active,MUIV_Cycle_Active_Prev); };
  69.         LONG Active() const { return((LONG)get(MUIA_Cycle_Active,0L)); };
  70.     };
  71.  
  72. class MUILabCycle
  73.     :   public MUILabelHelp,
  74.         public MUICycle
  75.     {
  76.     private:
  77.         MUIKeyLabel2 MUILab;
  78.     public:
  79.         MUILabCycle(const STRPTR lab, const STRPTR *entries)
  80.             :   MUILabelHelp(lab),
  81.                 MUICycle(entries,MUILabelHelp::gCC()),
  82.                 MUILab(MUILabelHelp::gLab(),MUILabelHelp::gCC())
  83.             { };
  84.         MUILabCycle(const MUILabCycle &p)
  85.             :   MUILabelHelp((MUILabelHelp &)p),
  86.                 MUICycle((MUICycle &)p),
  87.                 MUILab(p.MUILab)
  88.             { };
  89.         virtual ~MUILabCycle();
  90.         MUILabCycle &operator= (const MUILabCycle &);
  91.         Object *label() { return(MUILab); };
  92.     };
  93.  
  94. #endif
  95.